import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import plugins from './plugins'
import Element from "element-ui";
import locale from "element-ui/lib/locale/lang/zh-CN";
import 'swiper/dist/css/swiper.min.css'
import 'swiper/dist/js/swiper.min'
/*  引入element 样式 */
import 'element-ui/lib/theme-chalk/index.css'
// 引入国际化混入
import i18nMixin from './mixins/i18n.js'

Vue.config.productionTip = false
Vue.use(plugins).use(Element, {
  locale,
});
// 全局混入翻译功能
Vue.mixin(i18nMixin);

const app = new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

// 应用启动时自动恢复登录状态（延迟执行，确保 $.db 已加载）
Vue.nextTick(() => {
  setTimeout(() => {
    try {
      if (typeof $.db !== 'undefined' && $.db.get) {
        const token = $.db.get("token");
        if (token) {
          // 无论 store 中是否有用户信息，都尝试恢复（确保刷新后也能恢复）
          app.$get_user((user) => {
            if (user && user.user_id) {
              console.log('应用启动时恢复登录状态成功:', user);
              // 确保 token 保存到本地存储
              if (user.token) {
                $.db.set("token", user.token, 120);
              }
            } else {
              console.warn('恢复登录状态失败：用户信息为空');
            }
          });
        } else {
          console.log('本地存储中没有 token，用户未登录');
        }
      } else {
        // 如果 $.db 还未加载，稍后再试
        setTimeout(() => {
          if (typeof $.db !== 'undefined' && $.db.get) {
            const token = $.db.get("token");
            if (token) {
              app.$get_user((user) => {
                if (user && user.user_id) {
                  console.log('延迟恢复登录状态成功:', user);
                }
              });
            }
          }
        }, 500);
      }
    } catch (e) {
      console.warn('恢复登录状态失败:', e);
    }
  }, 200);
})
